' ****** START INCLUDE Blitkrieg Stratagem Icons ******
BigGun:
  DATA "BIG GUNS"
  DATA "...............................................................X"
  DATA "....................X......XXX....XXX....XXXX...XXXX....XXX....."
  DATA "......XX.....XXX......XX.....XXX.....XXX.XXXXXXX................"
  DATA "XX......X.XXX....XXXXX...XXXXX...XXXXX..X.XXX..................."
CounterAttack:
  DATA "COUNTERATTACK"
  DATA ".......................X.......X.....X.X....XX.X...XXX.X..XXXX.X"
  DATA "........................X.......XX......XXX.....XXXX....XXXXX..."
  DATA ".XXXXX.X..XXXX.X...XXX.X....XX.X.....X.X.......X.......X........"
  DATA "XXXXXX..XXXXX...XXXX....XXX.....XX......X......................."
EconomicWarfare:
  DATA "ECONOMIC WARFARE"
  DATA "..............XX.........XX.XX.....XX......XX......XX..X...XX..."
  DATA ".........XX.....XX......XX......XX......XX.X....XX..X...X...X..."
  DATA "..XXX......X...X......XX.....XXX.....X.X....XXXX....XXXX........"
  DATA "....X.....X.X....XX.X...XXXXXX..X.XX.X..XXXXXX..XXXXXX.........."
ForTheGlory:
  DATA "FOR THE GLORY"
  DATA "......................XX...XXXXX...XXXXX...XXXXX...XXXXX...XXXXX"
  DATA "................XX......XXXXX...XXXXX...XXXXX...XXXXX...XXXXX..."
  DATA "...XXXXX....XXXX....XXXX.....XXX......XX.......X................"
  DATA "XXXXX...XXXX....XXXX....XXX.....XX......X......................."
RapidDeployment:
  DATA "RAPID DEPLOYMENT"
  DATA ".............XXX......XX......X.......X.......X.......X.......X."
  DATA "........XXXXX...XXXXXX..XXXXX.X..XXX..X...X...X..X.X..X.X...X.X."
  DATA ".............XX....XXXX.....XXX....X.X....X.X......X............"
  DATA ".....XX.XXXXXXX.......X........................................."
ResearchAndDevelopment:
  DATA "RESEARCH & DEVELOPMENT"
  DATA ".........X.XXXX...XXXXXX.XXX..XX.XX....X.XX....X.XXX..XX..XXXXXX"
  DATA "........X...............X.......X.......X.......X..............."
  DATA ".X.XXXX...........X...X....XXX.....X.X.....XXX....X...X........."
  DATA "X.XXX.X..XXXXX..XX...XX.XX...XX.XX...XX..XXXXX..X.XXX.X........."
Secure:
  DATA "SECURE"
  DATA ".........X...XXX..X.X......X......X.X.XX.X...X...X..X.X..X..X..X"
  DATA "........XXX...X....X.X......X...XX.X.X....X...X..X.X..X.X..X..X."
  DATA ".X..X..X.X..X.X..X...X....X.X.XX...X......X.X....X...XXX........"
  DATA "X..X..X..X.X..X...X...X.XX.X.X......X......X.X..XXX...X........."
SteamRoll:
  DATA "STEAMROLL"
  DATA "......X.......XX......XX...XXXXX..XXXXXX.XXXXXXX.XXXX.XX.XXX..XX"
  DATA "................X.......XX......XXX.....XX......X...XXX.....XXX."
  DATA ".XXX..X..XXX.....XXXX....XXXXXXX..XXXXXX...XXXXX................"
  DATA "....XXX.....XXX....XXXX.XXXXXXX.XXXXXX..XXXXX..................."
'  ****** END INCLUDE Blitkrieg Stratagem Icons ******

' Program by Charlie Veniot
' for solo players of Paulo Mori's
' Blitzkrieg! World War Two In 20 Minutes
'
' This program randomly chooses a strategem
' for the A.I. Bot player's next turn.
'
' Each turn, the Bot will use a random
' 1 out of 8 available stratagems.  However:
' On the Bot's turn, the last stratagem used
' is not available for the current turn.
' i.e. a specific stratagem cannot be used in
' back-to-back turns. UNLESS this turn's
' stratagem = 8 (Repeat Last Stratagem)
'
' For the A.I. Bot's first turn, stratagem "8"
' (Steamroll = repeat last stratagem)
' is not available
_TITLE "BSC"
CONST stratagem$(1 TO 8) = {"BigGun","CounterAttack","EconomicWarfare", "ForTheGlory", _
                            "RapidDeployment","ResearchAndDevelopment","Secure","SteamRoll"}
DIM stratagemCount%( 1 TO 8 )
VAR allStratagems$ = "12345678"
VAR lastStratagem$ = "8"
VAR remainingStratagems$ = REPLACE$( allStratagems$, lastStratagem$, "" )

SUB PrintStratagem( id%, row%, col%, tfTitle%, tfEnabled% )
    DIM holdBg% = _BACKGROUND
    DIM t$, d1$, d2$, d3$, d4$
    
    RESTORE (stratagem$(id%))
    READ t$, d1$, d2$, d3$, d4$
    LETCHR$(1, d1$) : LETCHR$(2, d2$) : LETCHR$(3, d3$) : LETCHR$(4, d4$)
    LOCATE row%, col%
    COLOR , IFF( tfEnabled%, 60, 56 )
    PRINT CHR$(1) + CHR$(2);
    LOCATE row% + 1, col%
    PRINT CHR$(3) + CHR$(4);
    COLOR , holdBg%
    IF tfTitle% THEN LOCATE row% + 1, col% + 3 : PRINT t$;
END SUB

SCREEN _NEWIMAGE(392,176,14)

PRINT
PRINT REPLACE$(" -−-−-−-−-Blitzkrieg Stratagem Chooser", "-", " ")
PRINT REPLACE$(" -−-−-−-−-−-−-−-by Charlie Veniot", "-", " ")
PRINT
PRINT REPLACE$(" -−-−-−-A helper program for solo play of", "-", " ")
PRINT REPLACE$(" -−-−Blitzkrieg! World War Two in 20 Minutes", "-", " ")
LINE (2,2) TO (XMAX,56), ,B
LINE (5,4) TO (XMAX-2,54), ,B

PRINT
PRINT
PRINT
PRINT " This program will randomly choose a stratagem"
PRINT " from the available pool of stratagems, for the"
PRINT " A.I. Bot's next turn."
PRINT 
PRINT " A stratagem is selected immediately when this
PRINT " program starts.  Click/touch the screen to "
PRINT " generate the stratagem for the A.I. Bot's next"
PRINT " turn."
PRINT
PRINT " The program keeps a count of chosen stratagems."
PRINT
COLOR 62
PRINT "       Click/Touch the screen to continue."

SLEEP

SCREEN _NEWIMAGE(376,144,14)
COLOR 63
PRINT
PRINT "                About the game"
PRINT
PRINT " BLITKRIEG!"
PRINT " World War Two in 20 Minutes"
PRINT
PRINT " Designer: Paolo Mori"
PRINT
PRINT " Solo Designers: Nick Shaw, David Turczi"
PRINT
PRINT " Artists: Alan D'Amico, Paolo Mori, Paul Sizer"
PRINT
PRINT " Publishers: PSC Games, Banana Games,"
PRINT "             Giochix.it, Maldito Games,"
PRINT "             Matagot, Schwerkraft-Verlag"
PRINT
COLOR 62
PRINT " Click/Touch the screen to start the program."

SLEEP

SCREEN _NEWIMAGE(252,235,14)


LoopStart:
  PRINT
  newStratagem$ = MID$( remainingStratagems$, INT( RND * 7 ) + 1, 1 )
  COLOR 7
  PRINT " Last Turn: Played Stratagem " + lastStratagem$
  PRINT
  CALL PrintStratagem( (lastStratagem$), CSRLIN, 6, TRUE, FALSE )
  PRINT : PRINT
  PRINT " This Turn: Drew Stratagem " + newStratagem$
  PRINT
  CALL PrintStratagem( (newStratagem$), CSRLIN, 6, TRUE, FALSE )
  PRINT : PRINT : PRINT
  COLOR 63
  PRINT " This Turn: " + IFF( newStratagem$ = "8", "REPLAY Stratagem " + lastStratagem$, "Play Stratagem " + newStratagem$ )
  LET stratagemCount%(newStratagem$) = stratagemCount%(newStratagem$) + 1
  IF newStratagem$ = "8" THEN LET stratagemCount%(lastStratagem$) = stratagemCount%(lastStratagem$) + 1
  PRINT
  CALL PrintStratagem( IFF( newStratagem$ = "8", lastStratagem$, newStratagem$ ), CSRLIN, 6, TRUE, TRUE )
  PRINT : PRINT : PRINT
  LINE (0,87) TO (XMAX,136), ,B
  LINE (2,89) TO (XMAX-2,134), ,B
  remainingStratagems$ = REPLACE$( allStratagems$, newStratagem$, "" )
  COLOR 7
  PRINT " Available Next Turn: " + remainingStratagems$
  PRINT
  row% = CSRLIN
  col% = 6
  FOR i% = 1 TO 8
    thisStrategem$ = MID$(allStratagems$,i%,1)
    COLOR IFF( INSTR( remainingStratagems$, thisStrategem$ ) = 0, 6,54)
    CALL PrintStratagem( [thisStrategem$], [row%], [col%], FALSE, FALSE )
    COLOR 54
    LOCATE row% + 3, col% : PRINT RIGHT$(" " + stratagemCount%(i%),2);
    col% = col% + 3
  NEXT i%
  COLOR 7
  LOCATE row% + 3, 1
  PRINT " Cnt:";
  PRINT : PRINT : PRINT
  COLOR 62
  PRINT " Click/Touch the screen"
  PRINT " for the A.I. Bot's next turn."
  lastStratagem$ = newStratagem$
  SLEEP : IF _MOUSEBUTTON THEN WHILE _MOUSEBUTTON : WEND
  CLS
  
GOTO LoopStart: